package com.yulinlin.jdbc.model.wrapper;

import com.yulinlin.jdbc.model.anno.ConditionEnum;
import com.yulinlin.core.wrapper.IStringConditionWrapper;

import java.util.Collection;
import java.util.List;

public class ConditionUtil {

    public static void condition(IStringConditionWrapper whereWrapper, boolean and, String columnName, ConditionEnum conditionEnum , Object value){

        if(!and){
            whereWrapper.or();
        }

        switch (conditionEnum) {
            case eq:{
                whereWrapper.eq(columnName,value);
                break;
            }case ne:{
                whereWrapper.ne(columnName,value);
                break;
            }
            case gt:{
                whereWrapper.gt(columnName,(Number) value);
                break;
            }case ge:{
                whereWrapper.ge(columnName,(Number) value);
                break;
            }case lt:{
                whereWrapper.lt(columnName,(Number) value);
                break;
            }case le:{
                whereWrapper.le(columnName,(Number) value);
                break;
            }case in:{
                whereWrapper.in(columnName,(Collection<?>) value);
                break;
            }case like:{
                whereWrapper.like(columnName,value.toString());
                break;
            }case like_right:{
                whereWrapper.likeRight(columnName,value.toString());
                break;
            }case between:{
                List list =(List) value;
                whereWrapper.between(columnName,list.get(0),list.get(1));
            }
        }
    }
}
